package model.cuota;

import org.joda.time.LocalDate;


/**
 * @author Lucas
 * Una PrimerCuota es como si nombre lo indica la primer cuota de un prestamo.
 * Se diferencia con una "CuotaNormal" en la manera de calcular varios de sus valores
 */
public class PrimerCuota extends Cuota {

	private double valorTotalPrestamo;
	
	public PrimerCuota(double valorCuota, int numeroDeCuota, LocalDate vencimiento , double valorTotalPrestamo, double gastosMensuales, double TEM, double coeficienteSeguroDeVida) {
		super(valorCuota, numeroDeCuota , vencimiento, gastosMensuales, TEM , coeficienteSeguroDeVida);
		this.valorTotalPrestamo = valorTotalPrestamo;
		super.calcularValoresCuota();
	}

	public double getValorTotalPrestamo() {
		return valorTotalPrestamo;
	}

	/**
	 * Calcula el seguro de vida que se expresa como:
	 * Saldo de deuda * coeficiente de seguro de vida
	 */
	@Override
	protected void calcularSeguro() {
		double seguro = this.getValorTotalPrestamo() * this.getCoeficienteSeguroVida();
		this.setSeguro(seguro);
	}

	/**
	 *Calcula el saldo de deuda que se expresa como:
	 *Valor total del prestamo - amortizacion
	 */
	@Override
	protected void calcularSaldoDeDeuda() {
		this.setSaldoDeDeuda(this.getValorTotalPrestamo() - this.getAmortizacion());
	}

	/**
	 * Calcula el interes que se expresa como:
	 * valor total del prestamo * TEM
	 */
	@Override
	protected void calcularInteres() {
		this.setInteres(this.getValorTotalPrestamo() * this.getTEM());
	}

}
